package com.mhg.fondamental.arr;

class Demo_Array_3
{
	public static void main(String[] args) 
	{
		//数组中的常见异常
		int[] a = {5,6,10};
		int[] b = new int[4];

		System.out.println(a[1]);
		System.out.println(b[2]);

		a = b;
		System.out.println(a[1]);
		System.out.println(b[2]);

		b = null;//当指向为null的时候 找不到对应的堆内存中的地址
		//System.out.println(b[2]);//再调用里面的元素 就找不到了
		//Exception in thread "main" java.lang.NullPointerException 空指针异常

		int[] c = new int[3];//角标是0,1,2
		System.out.println(c[0]); //0
		System.out.println(c[4]); //?
		//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 角标越界异常 出圈儿了
		/*
			面试题 分析
			1.
			int[] x = new int[2];
			x[0] = 98;
			x = null;//将指向改变 变成了null
			System.out.println(x[0]); 再去获取数组中的数据 报出空指针异常

			2.
			int[] x = null;
			int[] y = new int[3];
			y = x;
			y[1] = 55;//错误代码 出现空指针异常
			System.out.println(x[1]);
			3.
			int a = 5;
			int b = a;
			b = 8;
			//栈内存中分配两个区域存储 a和b变量 当b改变 不影响a的值
			System.out.println(a);
			int[] x = {1,2,3};
			int[] y = new int[5];
			y[2] = 31;
			y = x;
			System.out.println(y[2]);
 		*/
	}
}
